package service

import (
	"github.com/gin-gonic/gin"

	"myapi/model"

	"myapi/handler"

	errno "myapi/pkg/error"

	"fmt"

	"net/http"
)

func AddUser(c *gin.Context) {
	var r model.User
	if err := c.Bind(&r); err != nil {
		handler.SendResponse(c, errno.ErrBind, nil)
		return
	}
	u := model.User{
		UserName: r.UserName,
		Password: r.Password,
	}
	// 验证数据
	if err := u.Validate(); err != nil {
		handler.SendResponse(c, errno.ErrValidation, nil)
		return
	}
	// 插入用户信息到数据库
	if _, err := u.Create(); err != nil {
		handler.SendResponse(c, errno.ErrDatabase, nil)
		return
	}
	// 展示用户信息
	handler.SendResponse(c, nil, u)
}

// 查询用户
func SelectUser(c *gin.Context) {
	// 获取POST请求参数
	name := c.PostForm("user_name")

	if name == "" {
		handler.SendResponse(c, errno.ErrValidation, nil)
		return
	}
	var user model.User
	if err := user.SelectUserByName(name); nil != err {
		fmt.Println(err)
		handler.SendResponse(c, errno.ErrUserNotFound, nil)
		return
	}
	// 验证数据
	if err := user.Validate(); err != nil {
		handler.SendResponse(c, errno.ErrUserNotFound, nil)
		return
	}

	handler.SendResponse(c, nil, user)
}

// 用户主页面
func UserIndex(c *gin.Context) {
	c.HTML(http.StatusOK, "index.html", gin.H{
		"title": "Home Page",
	})
}
